#include <iostream>
#include <string>
#include <list>
#include <thread>
#include <mutex>
#include <map>
#include <functional>
#include <ctime>
#include <initializer_list>
#include <vector>

#include "thread.h"
#include "varclasstmp.h"

std::vector<std::function<void(void)>> vec;

class AT
{
private:
    int temp_value = 10;
public:
    void addItem(int v)
    {
        vec.push_back([&](void){
            std::cout << "temp_value = " << temp_value << std::endl; 
            std::cout << "v = " << v << std::endl; 
        });
    }
};

void vec_func(int v)
{
    int temp = 0;
    vec.push_back([&](void){
        std::cout << "temp = " << temp << std::endl;
        std::cout << "v = " << std::endl;
    });
}

int main(int argc, char* argv[])
{
    if(argc >= 2)
    {
        for(int i = 0; i < argc; ++i)
        {
            std::cout << argv[i] << std::endl;
        }
    }

    AT at;
    at.addItem(999);

    vec[0]();

    std::cout << "end main" << std::endl;

    return 0;
}